<template>
  <div id="index" ref="appRef" style="width:100%">
    <div class="bg">
      <dv-loading v-if="loading">Loading...</dv-loading>
      <div v-else class="host-body">
        <div class="d-flex jc-center">
<!--          <dv-decoration-10 class="dv-dec-10" />-->
          <div class="d-flex jc-center">
<!--            <dv-decoration-8 class="dv-dec-8" :color="decorationColors" />-->
            <div class="title">
              <span class="title-text">{{ title }}</span>
<!--              <dv-decoration-6
                class="dv-dec-6"
                :reverse="true"
                :color="['#50e3c2', '#67a1e5']"
              />-->
            </div>
<!--            <dv-decoration-8
              class="dv-dec-8"
              :reverse="true"
              :color="decorationColors"
            />-->
          </div>
<!--          <dv-decoration-10 class="dv-dec-10-s" />-->
        </div>

        <!-- 第二行 -->
        <div class="d-flex jc-between px-2">
          <div class="d-flex aside-width">
            <div class="react-left ml-4 react-l-s">
              <span class="react-before"></span>
              <span class="text">{{ subtitle[0] }}</span>
            </div>
            <div class="react-left bg-color-blue ml-3">
              <span class="text">{{ subtitle[1] }}</span>
            </div>
          </div>
          <div class="d-flex aside-width">
            <div class="bg-color-black react-right mr-3">
              <span class="text fw-b">{{ subtitle[2] }}</span>
            </div>
            <div class="react-right mr-4 react-l-s">
              <span class="react-after"></span>
              <span class="text">
                {{ timeInfo.dateYear }} {{ timeInfo.dateWeek }}
                {{ timeInfo.dateDay }}
              </span>
            </div>
          </div>
        </div>

        <div class="body-box">
          <!-- 第三行数据 -->
          <div class="content-box">
            <div>
              <dv-border-box-11 title="性别/年龄分布">
                <center-left1 />
                <age-pie />
              </dv-border-box-11>
            </div>
<!--            <div>
              <dv-border-box-12>

              </dv-border-box-12>
            </div>-->
            <!-- 中间 -->
            <div>
              <dv-border-box-11 title="收支分析">
                <income-expreses-bar />
              </dv-border-box-11>
            </div>
            <!-- 中间 -->
<!--            <div>
              <center-right1 />
            </div>-->
            <div>
              <dv-border-box-11 title="课程预约率">
                <center-right2 />
              </dv-border-box-11>
            </div>
          </div>

          <!-- 第四行数据 -->
          <div class="bottom-box">
            <dv-border-box-13>
              <bottom-left />
            </dv-border-box-13>
            <dv-border-box-12>
              <bottom-right />
            </dv-border-box-12>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script lang="ts" setup>
import {
  ref,
  reactive,
  onMounted,
  onUnmounted,
} from 'vue'
import { formatTime } from '@/utils/index'
import { WEEK } from '@/constant/index'
import useDraw from '@/utils/useDraw'
import { title, subtitle, moduleInfo } from '@/constant/index'
import CenterLeft1 from '../centerLeft1/index.vue'
import AgePie from '../agePie/index.vue'
import IncomeExpresesBar from '../incomeExpensesBar/index.vue'
import CenterRight1 from '../centerRight1/index.vue'
import CenterRight2 from '../centerRight2/index.vue'
import BottomLeft from '../bottomLeft/index.vue'
import BottomRight from '../bottomRight/index.vue'

const decorationColors = ['#568aea', '#000000']
// * 加载标识
const loading = ref<boolean>(true)
// * 时间内容
const timeInfo = reactive({
  setInterval: 0,
  dateDay: '',
  dateYear: '',
  dateWeek: ''
})
// * 适配处理
const { appRef, calcRate, windowDraw, unWindowDraw } = useDraw()
// 生命周期
onMounted(() => {
  cancelLoading()
  handleTime()
  // todo 屏幕适应
  // windowDraw()
  // calcRate()
})

onUnmounted(() => {
  unWindowDraw()
  clearInterval(timeInfo.setInterval)
})

// methods
// todo 处理 loading 展示
const cancelLoading = () => {
  setTimeout(() => {
    loading.value = false
  }, 500)
}

// todo 处理时间监听
const handleTime = () => {
  timeInfo.setInterval = setInterval(() => {
    const date = new Date()
    timeInfo.dateDay = formatTime(date, 'HH: mm: ss')
    timeInfo.dateYear = formatTime(date, 'yyyy-MM-dd')
    timeInfo.dateWeek = WEEK[date.getDay()]
  }, 1000)
}
</script>

<style scoped>
/*@import '@/assets/scss/index.scss';*/
  #index{
    color: #d3d6dd;
    width: 100%;
    height: 100%;
  }
.bg{
  width: 100%;
  height: 100%;
  padding: 16px 16px 0 16px;
  background-image: url('../../assets/pageBg.png');
  background-size: cover;
  background-position: center center;
}
</style>
